Kembali ke Blog
Tutorial

Friday, 04 August 2023

|

6 min read

Konsep Dasar Programming Tanpa Bahasa Pemrograman Part 3

Ini adalah tutorial berseries yang membahas konsep dasar pemrograman tanpa harus menggunakan bahasa pemrograman tertentu. Konsep ini mendasari setiap bahasa pemrograman, sekaligus percobaan dalam membuat fitur di blog ini yaitu blog berseries yang bisa berlanjut.

Series ini sendiri niatnya akan dibagi menjadi beberapa bagian, antara lain adalah:

Series Konsep Dasar Programming Tanpa Bahasa Pemrograman

Walau judulnya tanpa bahasa pemrograman tentu saja saya tetap harus menggunakan bahasa pemrograman untuk menunjukan contoh praktis/teknisnya sendiri. Untuk kemudahan tutorial sendiri, saya menggunakan bahasa Python dalam menjelaskan konsep yang ada.

Previously:
Part 2: Tipe Data

Percabangan

Percabangan adalah konsep pemrograman yang masuk ke dalam yang namanya control flow (?), sebuah konsep yang digunakan untuk menentukan langkah apa yang harus dijalankan berdasarkan suatu kondisi.

Gampangnya sih bayangin kalo coding itu sebuah kegiatan dimana kita menulisa kode-kode yang fungsinya adalah untuk menentukan langkah-langkah si komputer. Jadi kita nulis komputer langkah pertama ini, kedua itu, dan seterusnya.

Nah percabangan sendiri adalah cara dimana kita menentukan langkah selanjutnya berdasarkan suatu kondisi. Contohnya misalkan kita buat kode untuk menentukan apakah seseorang lulus ujian atau tidak. Kita bisa buat kondisi seperti ini: apabila nilai murid tersebut dari 70 maka dia lulus, kalau kurang maka tidak. Karena tak mungkin kita bisa memberikan kelulusan pada semua murid padahal ada yang nilainya tidak memenuhi standar.

Dalam kehidupan sehari-hari pun logika percabangan ini sudah sering kita pakai, misalkan saat menyebrang jalan, apabila lampu hijau maka kita boleh menyebrang tapi kalau lampu merah kita harus berhenti dulu. Atau saat makan, apabila makanan masih panas maka kita harus menunggu dulu sebelum makan, kalau sudah dingin baru bisa dimakan.

Operator Percabangan:

Operator ini adalah simbol-simbol yang digunakan untuk membandingkan sebuah nilai dalam pemrograman yang hasilnya adalah sebuah boolean (true atau false). untuk contoh paling sederhana mungkin adalah logika operator ”==”, perumpamaan menyebrang jalan diatas tadi itu adalah contoh kasus yang menggunakan operator tersebut, untuk lebih lengkapnya sebagai berikut.

1. Operator Perbandingan (Comparison Operators)

Operator ini digunakan untuk membandingkan dua nilai atau ekspresi.

  • == (sama dengan): Memeriksa apakah dua nilai sama.
  • != (tidak sama dengan): Memeriksa apakah dua nilai tidak sama.
  • > (lebih besar dari): Memeriksa apakah nilai pertama lebih besar dari nilai kedua.
  • < (lebih kecil dari): Memeriksa apakah nilai pertama lebih kecil dari nilai kedua.
  • >= (lebih besar atau sama dengan): Memeriksa apakah nilai pertama lebih besar atau sama dengan nilai kedua.
  • <= (lebih kecil atau sama dengan): Memeriksa apakah nilai pertama lebih kecil atau sama dengan nilai kedua.

2. Operator Logika (Logical Operators)

Operator ini digunakan untuk mengkombinasikan beberapa ekspresi boolean.

  • && (dan): Mengembalikan true jika kedua ekspresi adalah true.
  • || (atau): Mengembalikan true jika salah satu dari dua ekspresi adalah true.
  • ! (not): Membalikkan nilai ekspresi, mengubah true menjadi false dan sebaliknya.

3. Operator Keanggotaan (Membership Operators)

Operator ini digunakan untuk menguji apakah sebuah nilai terdapat dalam suatu himpunan data.

  • in: Mengembalikan true jika nilai ada dalam himpunan.
  • not in: Mengembalikan true jika nilai tidak ada dalam himpunan.

Jenis-Jenis percabangan:

Dalam bahasa pemrograman, percabangan biasanya diimplementasikan menggunakan if..else, switch..case, ternary operator, dimana masing-masing perbedaan tetapi fungsi utamanya tetap sama yaitu untuk menjalankan aksi sesuai suatu kondisi.

1. If-Else

untuk tipe paling sering ditemui adalah tipe if else (jika - maka, jika tidak - maka)

Percabangan juga bisa mempunyai banyak kondisi, jadi tidak hanya harus 1 saja.

yang lebih kompleksnya, di dalam percabangan juga bisa ada percabangan lainnya.

Untuk contoh praktikalnya salah satunya pada saat kita login ke sebuah aplikasi, misalkan kita belum punya akun dan langsung login maka akan ada pengecekan apakah kita ini sudah punya akun atau belum, kalau sudah kita akan di arahkan ke halaman login, kalau belum maka akan diarahkan ke halaman registrasi.

Contoh if-else menggunakan Python:

if condition:
  # do something
else:
  # do something else

name = input("What is your name? ")
if name == "John":
  print("Hello John!")
else:
  print("Hello stranger!")

else-if

dalam percabangan if-else ada yang namanya else-if. Jadi dari yang asalnya hanya ya dan tidak, bisa menjadi lebih banyak kondisi, jadi tidak hanya harus 1 “jika” dalam satu flow percabangan. berikut contohnya dalam python:

name = input("What is your name? ")
if name == "John":
  print("Hello John!")
elif name == "Steven":
  print("Hello Steven!")
elif name == "Jessica":
  print("Hello Jessica!")
else:
  print("Hello stranger!")

2. Switch Case:

switch case adalah tipe percabangan yang tidak sefleksibel if-else serta tak didukung oleh semua bahasa pemrogaman, contohnya python adalah salah satu bahasa yang tidak punya built-in untuk switch-case.

Untuk perbedaannya sendiri bayangkan fundamental dari if-else adalah “jika memenuhi maka lakukan suatu aksi, jika tidak lakukan aksi lainnya”, sementara fundamental switch case adalah “jika memenuhi kondisi 1 jalankan aksi 1, jika memenuhi kondisi 2 jalankan aksi 2, jika memenuhi kondisi 3 jalankan aksi 3” Jadi perbedaan mendasar ada di bagian if-else yang punya iya atau tidak, sedangkan switch case yang hanya iya saja.

Perbedaan mendasar lainnya mungkin ada di bagian hal yang dijadikan penentuan percabangannya, misalkan kita mau membuat switch case nilai maka kita hanya bisa menggunakan konstan nilai, jadi single expression.

Kondisi-kondisi pada switch-case biasa disebut case, jadi case 1, case 2, case 3 daripada kondisi 1, kondisi 2, kondisi 3. Lalu ada juga konsep yang namanya default case dimana ini baru bisa dikatakan sebagai else nya switch-statement.

Dibawah adalah contoh switch-case dalam javascript (karena python tidak mendukung switch-case)

var pilihan = 2;

switch (pilihan) {
    case 1:
        console.log("Anda memilih opsi 1");
        break;
    case 2:
        console.log("Anda memilih opsi 2");
        break;
    case 3:
        console.log("Anda memilih opsi 3");
        break;
    default:
        console.log("Pilihan tidak valid");
}
ℹ️
Tambahan

Pada contoh diatas terdapat kalimat break, dimana hal tersebut ditujukan untuk membuat sebuah kode keluar apabila sudah memenuhi kondisi. Misalkan contoh diatas akan masuk ke case 2, nah karena ada break di dalamnya, kode tidak akan membaca case 3 dan default. Tetapi jika tak ada break, maka code akan terus berlanjut sehingga bisa memakan waktu lebih banyak.

3. Ternary Operator:

Terakhir ada ternary operator, jenis yang paling sederhana diantara ketiga jenis percabangan. Dengan ternary operator memungkinkan untuk menulis percabangan dalam 1 baris kode. Untuk fundamental dasarnya sendiri ternary operator sama dengan fundamental if-else.

Penggunannya sendiri biasanya bermacam-macam, misalkan untuk menentukan suatu nilai yang sebenarnya masih butuh percabangan tapi bukan suatu percabangan yang kompleks maka ternary operator solusinya. Dibawah adalah bentuk umum ternary operator

kondisi ? nilai_jika_benar : nilai_jika_salah;
angka = -5
hasil = "Positif" if angka > 0 else "Negatif atau Nol"
print(hasil) ## outputnya "Negatif atau Nol"

bilangan = 10
jenis = "Genap" if bilangan % 2 == 0 else "Ganjil"
print(jenis) ## outputnya "Genap"

Kesimpulan:

Ya dalam pemrograman konsep ini adalah hal yang membuat program menjadi lebih “cerdas” dan “adaptif” terhadap jalannya suatu program, karena tak mungkin data yang akan di olah, atau perilaku yang akan user lakukan akan selalu sama. Maka dari itu konsep ini lah yang bisa membuat output bermacam-macam sesuai kondisinya masing-masing.

Continue On:
Part 4: Looping

Made with Astro by Emir @2023